[Win32] 多线程和线程同步 您所在的位置:网站首页 win32 线程同步 [Win32] 多线程和线程同步

[Win32] 多线程和线程同步

2024-07-17 06:32| 来源: 网络整理| 查看: 265

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/48208357

多线程:一个进程创建时,默认情况下系统会为它创建一个主线程,(如果使用Native API创建的线程就没有主线程,是空的,必须自己创建主线程),应用程序可以自己创建线程,还有以前写过的一篇“DLL注入技术”,就是远程在其他进程中创建线程,然后让远程线程load我们的dll。

系统是如何实现多线程的?其实,对于单CPU单核心的设备上,在一个确定的时刻,只能执行内存中的一个指令。所谓的“多任务抢占式操作系统”,其实是将CPU划分了“时间段”,并分配给每一个线程,系统的任务调度程序会根据时间段切换线程上下文和进程上下文(比如线程的寄存器和状态等等信息就存储在上下文中),这个时间段不能太短,否则一个线程还没干什么事呢就切换走了,浪费效率,更不能太长,否则用户就感觉程序不是同时运行的。

创建一个线程,标准的Win32 API是CreateThread。

CreateThread函数:

HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_opt_ LPVOID lpParameter, _In_ DWORD dwCreationFlags, _Out_opt_ LPDWORD lpThreadId );

第1个参数:线程内核对象



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有